home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_dummy_threading.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  2KB  |  67 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. from test.test_support import verbose
  5. import random
  6. import dummy_threading as _threading
  7. import time
  8.  
  9. class TestThread(_threading.Thread):
  10.     
  11.     def run(self):
  12.         global running
  13.         delay = 0
  14.         if verbose:
  15.             print 'task', self.getName(), 'will run for', delay, 'sec'
  16.         
  17.         sema.acquire()
  18.         mutex.acquire()
  19.         running = running + 1
  20.         if verbose:
  21.             print running, 'tasks are running'
  22.         
  23.         mutex.release()
  24.         time.sleep(delay)
  25.         if verbose:
  26.             print 'task', self.getName(), 'done'
  27.         
  28.         mutex.acquire()
  29.         running = running - 1
  30.         if verbose:
  31.             print self.getName(), 'is finished.', running, 'tasks are running'
  32.         
  33.         mutex.release()
  34.         sema.release()
  35.  
  36.  
  37.  
  38. def starttasks():
  39.     for i in range(numtasks):
  40.         t = TestThread(name = '<thread %d>' % i)
  41.         threads.append(t)
  42.         t.start()
  43.     
  44.  
  45.  
  46. def test_main():
  47.     global numtasks, sema, mutex, running, threads
  48.     numtasks = 10
  49.     sema = _threading.BoundedSemaphore(value = 3)
  50.     mutex = _threading.RLock()
  51.     running = 0
  52.     threads = []
  53.     starttasks()
  54.     if verbose:
  55.         print 'waiting for all tasks to complete'
  56.     
  57.     for t in threads:
  58.         t.join()
  59.     
  60.     if verbose:
  61.         print 'all tasks done'
  62.     
  63.  
  64. if __name__ == '__main__':
  65.     test_main()
  66.  
  67.